import Vue from 'vue'
import Vuex from 'vuex'
// 1. 导入存储包
import createPersistedState from 'vuex-persistedstate'
// 导入ajax
import axios from 'axios'

Vue.use(Vuex)

export default new Vuex.Store({
    // 2. 配置为 vuex 的插件
    plugins: [createPersistedState()],
  // 保存全局项目需要共享数据token
  state: {
    // token:localStorage.getItem('token') || ''
    // 1.登录成功之后,得到token
    token:'',
    // 2.定义用户信息对象
    userInfo:{}
  },
  getters: {
  },
  // 用于修改state里面数据
  mutations: {
    // 更新token
    updateToken(state,token){
      state.token= token
      // 将token保存到本地存储
      // localStorage.setItem('token',token)
    },
    //更新用户信息
    updateUserInfo(state,info){
      state.userInfo = info
    }
  },
  //发送异步请求
  actions: {
    // 定义初始化用户的基本信息的action函数
    // context代表的new store实例对象
    async initUserInfo(context){
    const {data:res}= await axios.get('/my/userinfo',{headers:{
      Authorization:context.state.token 
    }
    })
    // console.log(res);
    if(res.code !== 0) return
    // 获取成功
    // console.log(res);
    // 调用mutations里面函数
    context.commit('updateUserInfo',res.data)
    }
  },
})
